// 品牌相关的接口函数

// 引入axios二次封装函数
import request from "@/utils/request";

// 使用枚举定义接口地址,方便后续修改
enum Api {
  // 获取品牌分页列表URL
  reqTrademarkListUrl = "/admin/product/baseTrademark",
  //添加品牌URL
  setTrademarkUrl = "/admin/product/baseTrademark/save",
  //修改品牌URL
  updateTrademarkUrl = "/admin/product/baseTrademark/update",
  //删除品牌URL
  deleteTrademarkUrl = "/admin/product/baseTrademark/remove",
  //获取品牌数据
  getTrademarkListUrl = "/admin/product/baseTrademark/getTrademarkList",
}

/**
 * 获取品牌分页列表的接口函数
 * @param page  当前页码
 * @param limit  每页条数
 * @returns
 */
import type { TrademarkItem, TrademarkList, TrademarkListApiRes } from "@/api/product/models/trademarkModel";
export const reqTrademarkListApi = (page: number, limit: number) => {
  /*
    get
      第一个泛型参数类型没啥用
      第二个泛型参数类型就会作为响应结果的类型
  */
  return request.get<any, TrademarkListApiRes>(`${Api.reqTrademarkListUrl}/${page}/${limit}`);
};

/**
 * 添加品牌的接口函数
 * @param tmName 品牌名称
 * @param logoUrl 品牌图片地址
 * @returns null
 */
export const setTrademarkApi = (tmName: string, logoUrl: string) => {
  // post put delete 返回值data都是null
  return request.post<any, null>(Api.setTrademarkUrl, {
    tmName,
    logoUrl,
  });
};

/**
 * 修改品牌的接口函数
 * @param trademark 单个品牌数据 对象
 * @returns null
 */
export const updateTrademarkApi = (trademark: TrademarkItem) => {
  // post put delete 返回值data都是null
  return request.put<any, null>(Api.updateTrademarkUrl, trademark);
};

/**
 * 删除品牌的接口函数
 * @param id  品牌id
 * @returns null
 */
export const deleteTrademarkApi = (id: number) => {
  return request.delete<any, null>(`${Api.deleteTrademarkUrl}/${id}`);
};

/**
 * 获取品牌数据的接口
 * @returns  TrademarkList
 */
export const getTrademarkListApi = () => {
  return request.get<any, TrademarkList>(Api.getTrademarkListUrl);
};
